package com.aaa.qy127.dao;

import com.aaa.qy127.entity.Staff;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

public interface StaffDao {


    /**
     * 根据 staffId 和password 查询 Staff信息
     * @return
     */
    Staff getOneStaffByStaffIdAndPassword(String staffId,String password);

    /**
     * 查询全部的员工信息
     * @return
     */
    List<Map<String,Object>> getAllStaff(Staff staff);

    /**
     * 获取到 staff 中的最大值
     * @return
     */
    int getMax();

    /**
     * 查询所有的数量
     * @return
     */
    int getAllCount(Staff staff);

    /**
     * 根据id 修改 员工状态
     * @param id
     * @param status
     * @return
     */
    int updateOneStatus(Integer id, Integer status);

    /**
     * 添加一条数据
     * @param staff
     * @return
     */
    int insertOneStaff(Staff staff);

    /**
     * 修改一条信息
     * @param staff
     * @return
     */
    int updateOneStaff(Staff staff);

    /**
     * 根据 根据rid查询 staff信息
     * @return
     */
    List<Map<String,Object>> getStaffByRid(String rid);

    /**
     * 根据传过俩的身份证号 查询staff信息
     * @param staff
     * @return
     */
    List<Map<String,Object>> getStaffByIdCard(Staff staff);

    /**
     * 查询staff 表中 管理员的个数
     * @return
     */
    int getCountGroupBYRoleId();

    /**
     * 根据staffid 和 idCard 查询 员工信息
     * @param staff
     * @return
     */
    List<Map<String,Object>> getOneStaffByIdAndIdCard(Staff staff);

    /**
     * 根据用户名修改密码
     * @param staffId
     * @param password
     * @return
     */
    int updatePassword(Integer staffId, String password);

    /**
     * 获取当前登陆人的信息
     * @param request
     * @return
     */
    List<Map<String, Object>> getNowLoginStaffInformation(HttpServletRequest request);

    /**
     * 更新当前登录人的手机号和地址
     * @param request
     * @return
     */
    int updateStaffPhoneAndAddress(Staff staff, HttpServletRequest request);

    /**
     * 根据当前登录人的id更新头像的url
     * @param request
     * @param file
     * @return
     */
    Map imgUpload(HttpServletRequest request, MultipartFile file);

}
